package com.mmy.dao.constparameter;

import java.util.List;

import javax.transaction.Transactional;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import com.mmy.domain.constparameter.TConstParameter;

/**
 * 类的介绍：参数设置
 *
 * @author hanxl
 * @date 创建日期 2020.12.23
 * @version 1.0
 */
public interface TConstParameterRepository extends JpaRepository<TConstParameter, Integer> {
	/**
	 * 后台参数设置 显示
	 *
	 * @author 创建人 hanxl
	 * @date 创建日期 2020.12.23
	 */
	@Query(value = "select * from tConstParameter where (:strText = \"\" or cText like %:strText%)  limit :iTempPageNo,:iPageSize", nativeQuery = true)
	List<TConstParameter> findALL(@Param("strText") String strText, @Param("iTempPageNo") int iTempPageNo,
			@Param("iPageSize") int iPageSize);

	/**
	 * 后台参数设置 显示 分页
	 *
	 * @author 创建人 hanxl
	 * @date 创建日期 2020.12.23
	 */
	@Query(value = "select count(*)  from tConstParameter where (:strText = \"\" or cText like %:strText%)", nativeQuery = true)
	int countALL(@Param("strText") String strText);

	/**
	 * 获得最大编号
	 * 
	 * @return 返回值说明 最大ID
	 * @author 创建人 hanxl
	 * @date 创建日期 2020.12.23
	 */
	@Query(value = "select Max(iID) from tConstParameter ", nativeQuery = true)
	Object getMaxID();

	/**
	 * 创建参数信息
	 * 
	 * @author 创建人 hanxl
	 * @date 创建日期 2020.12.23
	 */
	@Transactional
	@Modifying
	@Query(value = "INSERT INTO tConstParameter(iID, cText, fValue, dCreateDate, cCreator, dModifyDate, cReviser, cMemo, cSpare1, cSpare2, cSpare3, cSpare4, cSpare5) VALUES (?1, NULL, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);", nativeQuery = true)
	void save(int iID);

	/**
	 * 查询该ID的参数信息
	 * 
	 * @author 创建人 hanxl
	 * @date 创建日期 2020.12.23
	 */
	@Query(value = "select * from tConstParameter where iID=?1", nativeQuery = true)
	TConstParameter findByID(int iID);

	/**
	 * 函数功能说明：后台修改参数信息
	 *
	 * @author 创建人 hanxl
	 * @date 创建日期 2020.12.23
	 */
	@Transactional
	@Modifying
	@Query(value = "delete from tConstParameter where iID in (:iIDs)", nativeQuery = true)
	void deleteByIDs(@Param("iIDs") List<Integer> iIDs);

	/**
	 * 函数功能说明：后台进入创建招标 创建、修改投标页面 参数设置查询招标预算最大值
	 * 			liys 近郊游前台日历 预留日期 用到
	 *
	 * @author 创建人 hanxl
	 * @date 创建日期 2020.12.23
	 */
	@Query(value = "select * from tConstParameter where cText=:strText", nativeQuery = true)
	TConstParameter getByText(@Param("strText") String strText);
	
	/**
	 * 函数功能说明：创建和修改时查重
	 *
	 * @author 创建人 hanxl
	 * @date 创建日期 2020.12.23
	 */
	@Query(value = "select * from tConstParameter where cText=?1", nativeQuery = true)
	List<TConstParameter> findByText(String strtext);

}
